﻿Imports System.Data.SqlClient
Public Class frmVirement
    Dim isDateValidate As Boolean = True
    Private Sub frmLiaiChquPay_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        frm.Enabled = True
        For Each c In frm.Controls
            If TypeOf c Is ListView Then
                For Each it As ListViewItem In CType(c, ListView).Items
                    it.Selected = False
                Next
                Exit For
            End If
        Next
    End Sub
    Private Sub btnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAjouter.Click
        Try
            If objVirement.idPai = 0 Then
                If Not String.IsNullOrEmpty(txtNumCheq.Text) And Not String.IsNullOrWhiteSpace(txtNumCheq.Text) _
                And Not String.IsNullOrEmpty(txtNom.Text) And Not String.IsNullOrWhiteSpace(txtNom.Text) Then
                    objVirement = New virement

                    With objVirement
                        .numCompte = txtNumCheq.Text
                        .banqueDestinataire = cmbBnqDestinataire.Text
                        .banqueDestinateur = cmbBanqDestinateur.Text
                        .nom = txtNom.Text
                        .dateVirement = dtpCheque.Value
                    End With
                    MsgBox("Le virement est bien effectué", MsgBoxStyle.Information, "Succès")
                    Me.Close()
                Else
                    MsgBox("Veuillez remplir tous les champs!!!", MsgBoxStyle.Critical, "Erreur")
                End If
            Else
                MsgBox("Le virement est déjà effectué!!!", MsgBoxStyle.Critical, "Erreur")
            End If
        Catch ex As Exception
            MsgBox("Une erreur c'est produite, veuillez informer l'administrateur de l'application !!!" & Environment.NewLine & "Déscription de l'erreur :" & Environment.NewLine & ex.Message, MsgBoxStyle.Critical, "Erreur")
        End Try
    End Sub

    Private Sub frmLiaiChquPay_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            'Remplir le nom du 
            If frm.Name = frmPaiementParai.Name Then
                txtNom.Text = DirectCast(frmMesParraines.cmbParrin.SelectedItem, DictionaryEntry).Value.ToString
            ElseIf frm.Name = frmPaiementFour.Name Then
                txtNom.Text = DirectCast(frmServicesFrn.cmbFour.SelectedItem, DictionaryEntry).Value.ToString
            ElseIf frm.Name = Frm_Paiement_Fournisseurs.Name Then
                If isPerson Then
                    txtNom.Text = Frm_Paiement_Fournisseurs.Comb_Nom_Fournisseurs.SelectedItem.ToString
                End If
            End If
            'End

            'Remplir les deux combo des banques
            Dim banqueExist As Boolean
            Dim str As String
            Dim cmb As ComboBox
            For j As Integer = 0 To 1
                If j = 0 Then
                    str = "banqueDestinataire"
                    cmb = cmbBnqDestinataire
                Else
                    str = "banqueDestinateur"
                    cmb = cmbBanqDestinateur
                End If

                Cmd = New SqlCommand("select distinct " & str & " from virement", Con)
                open()
                Dr = Cmd.ExecuteReader
                If Dr.HasRows Then
                    While Dr.Read()
                        banqueExist = False
                        For i As Integer = 0 To cmbBnqDestinataire.Items.Count - 1
                            cmb.SelectedIndex = i
                            If cmb.Text = Dr.GetString(0) Then
                                banqueExist = True
                                Exit For
                            End If
                        Next
                        If Not banqueExist Then
                            cmbBnqDestinataire.Items.Add(Dr.GetString(0))
                        End If
                    End While
                End If
                Dr.Close()
                cnClose()
            Next
            cmbBnqDestinataire.SelectedIndex = 1
            cmbBanqDestinateur.SelectedIndex = 0
            'End

            If Not IsNothing(objVirement.numCompte) Then
                txtNumCheq.Text = objVirement.numCompte
                dtpCheque.Value = Format(objVirement.dateVirement, "dd/MM/yyyy")
                cmbBnqDestinataire.Text = objVirement.banqueDestinataire
                cmbBanqDestinateur.Text = objVirement.banqueDestinateur
                txtNom.Text = objVirement.nom
            Else
                btnModifier.Enabled = False
            End If

        Catch ex As Exception
            MsgBox("Une erreur c'est produite, veuillez informer l'administrateur de l'application !!!" & Environment.NewLine & "Déscription de l'erreur :" & Environment.NewLine & ex.Message, MsgBoxStyle.Critical, "Erreur")
        End Try
    End Sub

    Private Sub btnModifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModifier.Click
        Try
            If Not String.IsNullOrEmpty(txtNumCheq.Text) And Not String.IsNullOrWhiteSpace(txtNumCheq.Text) _
                And Not String.IsNullOrEmpty(txtNom.Text) And Not String.IsNullOrWhiteSpace(txtNom.Text) Then

                Cmd = New SqlCommand("UPDATE [Salle_Mariage].[dbo].[virement] " &
                                    "SET [numCompte] = @numCompte " &
                                    ",[banqueDestinataire] = @banqueDestinataire " &
                                    ",[banqueDestinateur] = @banqueDestinateur " &
                                    ",[nom] = @nom,[dateVirement]='" & Format(dtpCheque.Value, "MM/dd/yyyy") &
                                    "' WHERE idPai = " & objVirement.idPai, Con)
                Cmd.Parameters.Add("@numCompte", SqlDbType.VarChar)
                Cmd.Parameters("@numCompte").Value = txtNumCheq.Text

                Cmd.Parameters.Add("@banqueDestinataire", SqlDbType.VarChar)
                Cmd.Parameters("@banqueDestinataire").Value = cmbBnqDestinataire.SelectedItem.ToString

                Cmd.Parameters.Add("@banqueDestinateur", SqlDbType.VarChar)
                Cmd.Parameters("@banqueDestinateur").Value = cmbBanqDestinateur.SelectedItem.ToString

                Cmd.Parameters.Add("@nom", SqlDbType.VarChar)
                Cmd.Parameters("@nom").Value = txtNom.Text

                open()
                Cmd.ExecuteNonQuery()

                MsgBox("Le virement a été bien modifié", MsgBoxStyle.Information, "Succés")
                cnClose()
            Else
                MsgBox("Veuillez remplir tous les champs!!!", MsgBoxStyle.Critical, "Erreur")
            End If
        Catch ex As Exception
            MsgBox("Une erreur c'est produite, veuillez informer l'administrateur de l'application !!!" & Environment.NewLine & "Déscription de l'erreur :" & Environment.NewLine & ex.Message, MsgBoxStyle.Critical, "Erreur")
        End Try
    End Sub
End Class